<?xml version='1.0' encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html lang="en" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <link href="cpip.css" rel="stylesheet" type="text/css" />
    <title>File: /Users/paulross/dev/Python-3.6.2/Include/pycapsule.h</title>
  </head>
  <body>
    <h1>File: /Users/paulross/dev/Python-3.6.2/Include/pycapsule.h</h1>
    <p>Green shading in the line number column
means the source is part of the translation unit, red means it is conditionally excluded.
Highlighted line numbers link to the translation unit page. Highlighted macros link to
the macro page.</p>
    <pre><a name="1" /><span class="True">       1:</span> 
<a name="2" /><span class="True">       2:</span> <span class="k">/* Capsule objects let you wrap a C &quot;void *&quot; pointer in a Python</span>
<a name="3" /><span class="True">       3:</span> <span class="k">   object.  They&apos;re a way of passing data through the Python interpreter</span>
<a name="4" /><span class="True">       4:</span> <span class="k">   without creating your own custom type.</span>
<a name="5" /><span class="True">       5:</span> <span class="k"></span>
<a name="6" /><span class="True">       6:</span> <span class="k">   Capsules are used for communication between extension modules.</span>
<a name="7" /><span class="True">       7:</span> <span class="k">   They provide a way for an extension module to export a C interface</span>
<a name="8" /><span class="True">       8:</span> <span class="k">   to other extension modules, so that extension modules can use the</span>
<a name="9" /><span class="True">       9:</span> <span class="k">   Python import mechanism to link to one another.</span>
<a name="10" /><span class="True">      10:</span> <span class="k"></span>
<a name="11" /><span class="True">      11:</span> <span class="k">   For more information, please see &quot;c-api/capsule.html&quot; in the</span>
<a name="12" /><span class="True">      12:</span> <span class="k">   documentation.</span>
<a name="13" /><span class="True">      13:</span> <span class="k">*/</span>
<a name="14" /><span class="True">      14:</span> 
<a name="15" /><span class="True">      15:</span> <span class="f">#</span><span class="n">ifndef</span> <a href="macros_noref.html#_UHlfQ0FQU1VMRV9IXzA_"><span class="b">Py_CAPSULE_H</span></a>
<a name="16" /><span class="True">      16:</span> <span class="f">#</span><span class="n">define</span> <a href="macros_noref.html#_UHlfQ0FQU1VMRV9IXzA_"><span class="b">Py_CAPSULE_H</span></a>
<a name="17" /><span class="False">      17:</span> <span class="f">#</span><span class="n">ifdef</span> <span class="b">__cplusplus</span>
<a name="18" /><span class="False">      18:</span> <span class="m">extern</span> <span class="e">&quot;C&quot;</span> <span class="f">{</span>
<a name="19" /><span class="True">      19:</span> <span class="f">#</span><span class="n">endif</span>
<a name="20" /><span class="True">      20:</span> 
<a name="21" /><span class="True">      21:</span> <a href="macros_ref.html#_UHlBUElfREFUQV8w"><span class="b">PyAPI_DATA</span></a><span class="f">(</span><span class="b">PyTypeObject</span><span class="f">)</span> <span class="b">PyCapsule_Type</span><span class="f">;</span>
<a name="22" /><span class="True">      22:</span> 
<a name="23" /><span class="True">      23:</span> <span class="m">typedef</span> <span class="m">void</span> <span class="f">(</span><span class="f">*</span><span class="b">PyCapsule_Destructor</span><span class="f">)</span><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span><span class="f">;</span>
<a name="24" /><span class="True">      24:</span> 
<a name="25" /><span class="True">      25:</span> <span class="f">#</span><span class="n">define</span> <a href="macros_noref.html#_UHlDYXBzdWxlX0NoZWNrRXhhY3RfMA__"><span class="b">PyCapsule_CheckExact</span></a><span class="f">(</span><span class="b">op</span><span class="f">)</span> <span class="f">(</span><a href="macros_ref.html#_UHlfVFlQRV8w"><span class="b">Py_TYPE</span></a><span class="f">(</span><span class="b">op</span><span class="f">)</span> <span class="f">==</span> <span class="f">&amp;</span><span class="b">PyCapsule_Type</span><span class="f">)</span>
<a name="26" /><span class="True">      26:</span> 
<a name="27" /><span class="True">      27:</span> 
<a name="28" /><span class="True">      28:</span> <a href="macros_ref.html#_UHlBUElfRlVOQ18w"><span class="b">PyAPI_FUNC</span></a><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span> <span class="b">PyCapsule_New</span><span class="f">(</span>
<a name="29" /><span class="True">      29:</span>     <span class="m">void</span> <span class="f">*</span><span class="b">pointer</span><span class="f">,</span>
<a name="30" /><span class="True">      30:</span>     <span class="m">const</span> <span class="m">char</span> <span class="f">*</span><span class="b">name</span><span class="f">,</span>
<a name="31" /><span class="True">      31:</span>     <span class="b">PyCapsule_Destructor</span> <span class="b">destructor</span><span class="f">)</span><span class="f">;</span>
<a name="32" /><span class="True">      32:</span> 
<a name="33" /><span class="True">      33:</span> <a href="macros_ref.html#_UHlBUElfRlVOQ18w"><span class="b">PyAPI_FUNC</span></a><span class="f">(</span><span class="m">void</span> <span class="f">*</span><span class="f">)</span> <span class="b">PyCapsule_GetPointer</span><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="b">capsule</span><span class="f">,</span> <span class="m">const</span> <span class="m">char</span> <span class="f">*</span><span class="b">name</span><span class="f">)</span><span class="f">;</span>
<a name="34" /><span class="True">      34:</span> 
<a name="35" /><span class="True">      35:</span> <a href="macros_ref.html#_UHlBUElfRlVOQ18w"><span class="b">PyAPI_FUNC</span></a><span class="f">(</span><span class="b">PyCapsule_Destructor</span><span class="f">)</span> <span class="b">PyCapsule_GetDestructor</span><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="b">capsule</span><span class="f">)</span><span class="f">;</span>
<a name="36" /><span class="True">      36:</span> 
<a name="37" /><span class="True">      37:</span> <a href="macros_ref.html#_UHlBUElfRlVOQ18w"><span class="b">PyAPI_FUNC</span></a><span class="f">(</span><span class="m">const</span> <span class="m">char</span> <span class="f">*</span><span class="f">)</span> <span class="b">PyCapsule_GetName</span><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="b">capsule</span><span class="f">)</span><span class="f">;</span>
<a name="38" /><span class="True">      38:</span> 
<a name="39" /><span class="True">      39:</span> <a href="macros_ref.html#_UHlBUElfRlVOQ18w"><span class="b">PyAPI_FUNC</span></a><span class="f">(</span><span class="m">void</span> <span class="f">*</span><span class="f">)</span> <span class="b">PyCapsule_GetContext</span><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="b">capsule</span><span class="f">)</span><span class="f">;</span>
<a name="40" /><span class="True">      40:</span> 
<a name="41" /><span class="True">      41:</span> <a href="macros_ref.html#_UHlBUElfRlVOQ18w"><span class="b">PyAPI_FUNC</span></a><span class="f">(</span><span class="m">int</span><span class="f">)</span> <span class="b">PyCapsule_IsValid</span><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="b">capsule</span><span class="f">,</span> <span class="m">const</span> <span class="m">char</span> <span class="f">*</span><span class="b">name</span><span class="f">)</span><span class="f">;</span>
<a name="42" /><span class="True">      42:</span> 
<a name="43" /><span class="True">      43:</span> <a href="macros_ref.html#_UHlBUElfRlVOQ18w"><span class="b">PyAPI_FUNC</span></a><span class="f">(</span><span class="m">int</span><span class="f">)</span> <span class="b">PyCapsule_SetPointer</span><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="b">capsule</span><span class="f">,</span> <span class="m">void</span> <span class="f">*</span><span class="b">pointer</span><span class="f">)</span><span class="f">;</span>
<a name="44" /><span class="True">      44:</span> 
<a name="45" /><span class="True">      45:</span> <a href="macros_ref.html#_UHlBUElfRlVOQ18w"><span class="b">PyAPI_FUNC</span></a><span class="f">(</span><span class="m">int</span><span class="f">)</span> <span class="b">PyCapsule_SetDestructor</span><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="b">capsule</span><span class="f">,</span> <span class="b">PyCapsule_Destructor</span> <span class="b">destructor</span><span class="f">)</span><span class="f">;</span>
<a name="46" /><span class="True">      46:</span> 
<a name="47" /><span class="True">      47:</span> <a href="macros_ref.html#_UHlBUElfRlVOQ18w"><span class="b">PyAPI_FUNC</span></a><span class="f">(</span><span class="m">int</span><span class="f">)</span> <span class="b">PyCapsule_SetName</span><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="b">capsule</span><span class="f">,</span> <span class="m">const</span> <span class="m">char</span> <span class="f">*</span><span class="b">name</span><span class="f">)</span><span class="f">;</span>
<a name="48" /><span class="True">      48:</span> 
<a name="49" /><span class="True">      49:</span> <a href="macros_ref.html#_UHlBUElfRlVOQ18w"><span class="b">PyAPI_FUNC</span></a><span class="f">(</span><span class="m">int</span><span class="f">)</span> <span class="b">PyCapsule_SetContext</span><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="b">capsule</span><span class="f">,</span> <span class="m">void</span> <span class="f">*</span><span class="b">context</span><span class="f">)</span><span class="f">;</span>
<a name="50" /><span class="True">      50:</span> 
<a name="51" /><span class="True">      51:</span> <a href="macros_ref.html#_UHlBUElfRlVOQ18w"><span class="b">PyAPI_FUNC</span></a><span class="f">(</span><span class="m">void</span> <span class="f">*</span><span class="f">)</span> <span class="b">PyCapsule_Import</span><span class="f">(</span>
<a name="52" /><span class="True">      52:</span>     <span class="m">const</span> <span class="m">char</span> <span class="f">*</span><span class="b">name</span><span class="f">,</span>           <span class="k">/* UTF-8 encoded string */</span>
<a name="53" /><span class="True">      53:</span>     <span class="m">int</span> <span class="b">no_block</span><span class="f">)</span><span class="f">;</span>
<a name="54" /><span class="True">      54:</span> 
<a name="55" /><span class="True">      55:</span> 
<a name="56" /><span class="False">      56:</span> <span class="f">#</span><span class="n">ifdef</span> <span class="b">__cplusplus</span>
<a name="57" /><span class="False">      57:</span> <span class="f">}</span>
<a name="58" /><span class="True">      58:</span> <span class="f">#</span><span class="n">endif</span>
<a name="59" /><span class="True">      59:</span> <span class="f">#</span><span class="n">endif</span> <span class="k">/* !Py_CAPSULE_H */</span>
<a name="60" /><span class="True">      60:</span> </pre>
  </body>
</html>
